home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Interfaces / CIncludes / iomdefs.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-28  |  2.0 KB  |  84 lines  |  [TEXT/MPS ]

  1. #ifndef __IOMDEFS_H
  2. #define __IOMDEFS_H
  3.  
  4. #include <iostream.h>
  5.  
  6. template <class T> class SMANIP {
  7. public:
  8.     SMANIP(ios &(*f)(ios&, T), T v) : func(f), val(v) {}
  9.     friend istream &operator>>(istream& s, SMANIP<T>& m)
  10.     { m.func(s, m.val); return s; }
  11.     friend ostream &operator<<(ostream& s, SMANIP<T>& m)
  12.     { m.func(s, m.val); return s; }
  13. private:
  14.     ios &(*func)(ios&, T);
  15.     T val;
  16. };
  17.  
  18. template <class T> class IMANIP {
  19. public:
  20.     IMANIP(istream &(*f)(istream&, T), T v) : func(f), val(v) {}
  21.     friend istream &operator>>(istream& s, IMANIP<T>& m)
  22.     { return m.func(s, m.val); }
  23. private:
  24.     istream &(*func)(istream&, T);
  25.     T val;
  26. };
  27.  
  28. template <class T> class OMANIP {
  29. public:
  30.     OMANIP(ostream &(*f)(ostream&, T), T v) : func(f), val(v) {}
  31.     friend ostream &operator<<(ostream& s, OMANIP<T>& m)
  32.     { return m.func(s, m.val); }
  33. private:
  34.     ostream &(*func)(ostream&, T);
  35.     T val;
  36. };
  37.  
  38. template <class T> class IOMANIP {
  39. public:
  40.     IOMANIP(iostream &(*f)(iostream&, T), T v) : func(f), val(v) {}
  41.     friend istream &operator>>(iostream& s, IOMANIP<T>& m)
  42.     { return m.func(s, m.val); }
  43.     friend ostream &operator<<(iostream& s, IOMANIP<T>& m)
  44.     { return m.func(s, m.val); }
  45. private:
  46.     iostream &(*func)(iostream&, T);
  47.     T val;
  48. };
  49.  
  50. template <class T> class SAPP {
  51. public:
  52.     SAPP(ios &(*f)(ios&, T)) : func(f) {}
  53.     SMANIP<T> operator()(T v) { return SMANIP<T>(func, v); }
  54. private:
  55.     ios &(*func)(ios&, T);
  56. };
  57.  
  58. template <class T> class IAPP {
  59. public:
  60.     IAPP(istream &(*f)(istream&, T)) : func(f) {}
  61.     IMANIP<T> operator()(T v) { return IMANIP<T>(func, v); }
  62. private:
  63.     istream &(*func)(istream&, T);
  64. };
  65.  
  66. template <class T> class OAPP {
  67. public:
  68.     OAPP(ostream &(*f)(ostream&, T)) : func(f) {}
  69.     OMANIP<T> operator()(T v) { return OMANIP<T>(func, v); }
  70. private:
  71.     ostream &(*func)(ostream&, T);
  72. };
  73.  
  74. template <class T> class IOAPP {
  75. public:
  76.     IOAPP(iostream &(*f)(iostream&, T)) : func(f) {}
  77.     IOMANIP<T> operator()(T v) { return IOMANIP<T>(func, v); }
  78. private:
  79.     iostream &(*func)(iostream&, T);
  80. };
  81.  
  82.  
  83. #endif  // __IOMDEFS_H
  84.